package com.jingyanzi.sys.domain.service;

import com.jingyanzi.sys.domain.MemberGradeDO;
import com.jingyanzi.sys.domain.RightsDO;
import com.jingyanzi.sys.domain.query.MemberGradeQueryDO;
import com.jingyanzi.sys.domain.query.RightQueryDO;
import com.jingyanzi.sys.domain.result.ResultDO;

/**
 * 会员配置管理
* <b>Description:实现对会员权益、会员等级配置参数的管理</b><br> 
* @author Reading.Reagan</a>
* @version 1.0
* @Note
* <b>ProjectName:</b> sys-api
* <br><b>PackageName:</b> com.jingyanzi.sys.domain.service
* <br><b>ClassName:</b> IMemberConfigService
* <br><b>Date:</b> 2018年7月12日 下午3:16:25
 */
public interface IMemberConfigService {

	/**
	* <b>Description:添加会员权益</b><br> 
	* @param rightsDO 会员权益对象
	* @return
	* ResultDO Integer 会员权益id
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午3:15:26
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO addRights(RightsDO rightsDO);
	
	/**
	 * 删除客户权益
	* <b>Description:删除客户权益</b><br> 
	* @param id 会员权益id
	* @param name 修改人姓名
	* @return
	* ResultDO 
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午3:17:44
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO removeRights(Integer id,String name);
	
	/**
	 * 修改客户权益
	* <b>Description:修改客户权益</b><br> 
	* @param rightsDO 会员权益DO对象
	* @return
	* ResultDO 
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午3:18:39
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO modifiRights(RightsDO rightsDO);
	
	/**
	 * 
	 * @param id
	 * @return
	 */
	/**
	 * 返回单个会员权益
	* <b>Description:返回单个会员权益</b><br> 
	* @param id 会员权益id
	* @return
	* ResultDO RightsDO 会员权益DO对象
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午3:19:11
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO getRights(Integer id);
	
	/**
	 * 查询会员权益
	* <b>Description:查询会员权益</b><br> 
	* @param queryDO 查询对象
	* @return
	* ResultDO List<RightsDO> 会员权益DO对象列表
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午3:19:34
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO queryRights(RightQueryDO queryDO);
	
	/**
	 * 添加会员等级
	* <b>Description:添加会员等级</b><br> 
	* @param gradeDO 会员等级DO对象
	* @return 
	* ResultDO Integer 会员等级id
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午3:12:52
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO addGrade(MemberGradeDO gradeDO);
	
	/**
	 * 删除会员等级
	* <b>Description:删除会员等级</b><br> 
	* @param ids 会员等级id数组
	* @return
	* ResultDO 
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午3:12:15
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO removeGrade(Integer [] ids);
	
	/**
	 * 修改会员等级参数
	* <b>Description:修改会员等级参数</b><br> 
	* @param gradeDO 会员等级DO对象
	* @return
	* ResultDO 
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午3:10:33
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO modifiGrade(MemberGradeDO gradeDO);
	
	/**
	 * 返回单个会员等级
	* <b>Description:返回单个会员等级</b><br> 
	* @param id 会员等级id
	* @return 
	* ResultDO MemberGradeDO 会员等级DO对象 
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午3:09:57
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO getGrade(Integer id);
	
	/**
	 * 通过会员积分判断会员等级
	 * <b>Description:</b><br> 
	 * @param integral 积分数
	 * @return ResultDO MemberGradeDO 会员等级DO对象
	 * @Note
	 * <b>Author:</b> Reading.Reagan
	 * <br><b>Date:</b> 2018年7月12日 下午3:02:50
	 * <br><b>Version:</b> 1.0
	 */
	public ResultDO judgeLevel(Integer integral);
	
	/**
	 * 查询会员等级
	* <b>Description:查询会员等级</b><br> 
	* @param queryDO 分页参数
	* @return 
	* ResultDO List<MemberGradeDO> 会员等级DO对象列表
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午2:59:22
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO queryGrade(MemberGradeQueryDO queryDO);
	
	
	/**
	 * 会员等级查重
	* <b>Description: 根据等级名称、code以及id进行查重</b><br> 
	* @param gradeDO
	* @return 
	* ResultDO Integer 是否重复：0--不重复； 1--重复
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年7月12日 下午2:29:38
	* <br><b>Version:</b> 1.0
	 */
	public ResultDO gradeCheckRepeat(MemberGradeDO gradeDO);
}
